#ifndef __EVENTO_H_INCLUDED__
#define __EVENTO_H_INCLUDED__

class Evento;

#include "Transaccion.h"
#include "Sistema.h"

class Evento{
private:
     uint64_t tiempo;		/**< instante en que se produce el
				 * evento */
public:
     Evento(uint64_t instante);
     uint64_t getTiempo();
     virtual void ejecutar() = 0;
};

class EventoAdvance: public Evento{
private:
     Transaccion* transaccion;

public:
     EventoAdvance(uint64_t instante, Transaccion* transaccion);
     virtual void ejecutar();
};

class EventoGenerate:public Evento{
public:
     EventoGenerate(uint64_t instante);
     virtual void ejecutar();
};  

#endif //__EVENTO_H_INCLUDED__
